/**
* 文 件 名 :FineGrainedAuthorityService.java
    * CopyRright (c) 2012-0418:
* 文件编号：
* 创 建 人：薛琦
* 日    期：2012-04-18
* 修 改 人：
* 日   期：
* 描   述：
* 版 本 号：
*/ 
package com.tjtt.tdm.system.service;

import java.util.Collection;
import java.util.List;
import java.util.Map;

import com.tjtt.tdm.exception.DaoException;
import com.tjtt.tdm.exception.ServiceException;
/**
* CopyRright (c)2012-0418:   <天健通泰科技 >                         
    * Project:                    贵航                                       
* Module ID:  
    * Comments:  对于角色对应的菜单按钮在数据库的增删改操作                                        
* JDK version used:      <JDK1.6>                             
* Namespace:        com.tjtt.tdm.system.service                           
* Author：        xueqi               
* Create Date：  2012-04-18
* Modified By：                                     
* Modified Date:                                  
    * Why & What is modified  <修改原因描述>   
* Version:                  <版本号>                      
*/ 
public interface FineGrainedAuthorityService {
	/**
	 * 根据menuid获取当前menu下所有的button 信息
	 * @param menuId
	 * @return
	 * @throws ServiceException 
	 * 创 建 人:xueqi
      * 日    期:2012-04-18
      * 修 改 人:
      * 日    期: 
      */
	public List getButtonsByMenuId(Long menuId) throws ServiceException ;
     /**
      * 根据roleid获得当前角色下分配给改角色的菜单中的所有可访问的button
      * @param roleId
      * @return
     * @throws ServiceException 
      * 创 建 人:xueqi
      * 日    期:2012-04-18
      * 修 改 人:
      * 日    期: 
      */
	public List getButtonsByRoleId(Long roleId) throws ServiceException;
     /**
      * 批量存储ROLEMENUOPERATION
      * @param roleButtonsList
     * @throws ServiceException 
      * 创 建 人:xueqi
      * 日    期:2012-04-18
      * 修 改 人:
      * 日    期: 
      */
	public void saveRoleButtons(List roleButtonsList) throws ServiceException;
     /**
      * 删除所有ROLEMENUOPERATION表中roleid等于@param roleId的记录
      * @param roleId
      * 创 建 人:xueqi
      * 日    期:2012-04-18
      * 修 改 人:
      * 日    期: 
      */
	public void delRoleButtonsByRoleId(Long roleId);
      /**
       * 保存所有与menu相关的button信息
       * @param buttonList
     * @throws ServiceException 
      * 创 建 人:xueqi
      * 日    期:2012-04-18
      * 修 改 人:
      * 日    期: 
      */
	public void saveButtons(List buttonList) throws ServiceException;
      /**
       * 删除掉对应menuID与buttonid与参数相对应的记录
       * @param menuId
       * @param buttonId
      * 创 建 人:xueqi
      * 日    期:2012-04-18
      * 修 改 人:
      * 日    期: 
      */
	public void delButtonsByParam(Long menuId, Long buttonId);
	

	  /**
   * 删除掉对应集合中的所有对象对应的数据
  * 创 建 人:xueqi
  * 日    期:2012-04-19
  * 修 改 人:
  * 日    期: 
  */
	  public void delDatas(Collection collection);
	  
	  /**
	    * 根据roleid获得所有的菜单按钮信息并且给出那些菜单按钮被选中
	    * 创 建 人:xueqi
	    * 日    期:2012-04-19
	    * 修 改 人:
	    * 日    期: 
	    */
	  public List getRoleButtons(Long roleid);
	  /**
		 * 修改角色菜单对应关系,以及角色与菜单按钮的对应关系
		 * @param roleId
		 * @param menuIds
		 * @throws ServiceException
		* 创 建 人:xueqi
	    * 日    期:2012-04-20
	    * 修 改 人:
	    * 日    期: 
	    */
	  public void updateRoleMenuByRoleId(Long roleid, List<Long> menuIds,List buttonList) throws ServiceException;
	  
	  /**
	    * 获取所有的菜单
	    * 创 建 人:xueqi
	    * 日    期:2012-04-23
	    * 修 改 人:
	    * 日    期: 
	    */
		public List getAllMenus();
		
		
		/**
		 * 查询出当前表中某个页面是否已经存在相同的按钮
		 * @param args
		 * @return
		 * 创 建 人:xueqi
	    * 日    期:2012-04-23
	    * 修 改 人:
	    * 日    期: 
	    */
		public Long findExistData(Object[]args);
		
		 /**
		    * 根据roleids获得所有的菜单按钮信息并且给出那些菜单按钮被选中
		    * 创 建 人:xueqi
		    * 日    期:2012-04-19
		    * 修 改 人:
		    * 日    期: 
		    */
		public List getRoleButtons(Long[] roleids) ;
		 /**
	      * 根据roleid获得当前角色下分配给改角色的菜单中的所有可访问的button
	      * @param roleId
	      * @return
	      * @throws DaoException
	      * 创 建 人:xueqi
	      * 日    期:2012-04-18
	      * 修 改 人:
	      * 日    期: 
	      */
		public List getButtonsByRoleId(Long[] roleIds) throws DaoException;
}
